With any task, how to make things work concerned me the most. Learning to do test driven development (TDD) comes a long way to help me make sure the code works as I intended - for both positive and negative examples. However, as I come across the "Representable/Valid Principle" introduced in James Koppel's Advanced Software Design Web Course, I found out that I can write code that that not just does the right thing but also can't do the wrong thing.